; $VER: Delfina Install 2.0 (25.08.96)
; Description: Installer script for Delfina DSP board

(set #nohelp "No help available.")

(if (< (/ (getversion) 65536) 37)
	(abort "Delfina DSP requires kickstart 2.04 or higher.")
)

(complete 0)

;**
;** set destination directory
;** Directory is stored in ENV:DelfinaDir, so it is found on next
;** installation
;**
(if (exists "ENV:DelfinaDir")
	(set destdir (getenv "DelfinaDir"))
	(set destdir @default-dest)
)
(set destdir (askdir 
	(prompt "Select directory where Delfina software should be installed. Directory named 'Delfina' will be created there.")
	(help @askdir-help)
	(default destdir)
))

(delete "env:delfinadir")
(delete "envarc:delfinadir")
(textfile (dest "env:DelfinaDir") (append destdir))
(textfile (dest "envarc:DelfinaDir") (append destdir))

(set parentdir destdir)
(set destdir (tackon destdir "Delfina"))
(set @default-dest destdir)
(set stuffdir (tackon destdir "stuff/"))

(if (exists destdir) (
	(if (NOT (askbool
		(prompt "You have an older version of Delfina software installed. Old Delfina software will be overwritten, other files are preserved. Do you wish to continue?")
		(help #nohelp)
		(default 1)
	 ))
		(abort "Installation aborted.")
	)
))


;** 
;** CPU check
;**
(set cpu (database "cpu"))
(set cpu020 (and (<> cpu "68000") (<> cpu "68010")))
(if cpu020
	(set cpu020 (askbool (prompt "You have a 68020 or higher processor. Do you want to install 68020-optimized versions of the programs, if available?") (help #nohelp) (default 1)))
)

;**
;** ask install options
;**
(set choice (askoptions
	(prompt "Select which additional software to install")
	(help "AHI driver - AHI is a retargetable audio system for Amiga. With AHI you can use the same software with many different audio boards.\nDeveloper material - includes, autodocs, dsp56002 assembler compiler.")
	(choices "AHI driver" "Developer material")
	(default 1)
))

(set ahidriver (BITAND choice 1))
(set devstuff  (BITAND choice 2))

;**
;** get include dir
;**
(if devstuff (
	(if (exists "include:" (noreq))
		(set incdir "include:")
		(set incdir @default-dest)
	)
	(set incdir (askdir 
		(prompt "Select directory where your C and Asm includes are.")
		(help @askdir-help)
		(default incdir)
	))
))

;** 
;**  unpack main pack
;**
(run "c/lh " (cat "xw" destdir " data/pack.lha"))
(if (NOT (exists (tackon parentdir "Delfina.info")))
(copyfiles 
	(help @copyfiles-help)
	(prompt "Installing icon for Delfina directory")
	(source (tackon stuffdir "Delfina.info"))
	(noposition)
	(dest parentdir)
))
(complete 20)


;**
;** unpack and copy delfina.library
;**
(if cpu020
	(set libname (tackon stuffdir "delfina.library020"))
	(set libname (tackon stuffdir "delfina.library000"))
)

(copylib 
	(help @copylib-help)
	(prompt "Installing delfina.library")
	(confirm)
	(source libname)
	(newname "delfina.library")
	(dest "LIBS:")
)

(copylib 
	(help "This is a serial.device compatible driver for the Delfina's RS232 port.")
	(prompt "Installing delfser.device")
	(confirm)
	(source (tackon stuffdir "delfser.device"))
	(dest "DEVS:")
)

(complete 40)


;**
;** unpack AHI pack
;**
(if ahidriver 
(if (NOT (exists "devs:ahi"))
	(makedir "devs:ahi"))
(if (NOT (exists "devs:audiomodes"))
	(makedir "devs:audiomodes"))

(copylib 
	(help @copylib-help)
	(prompt "Installing devs:ahi/delfina.audio, part of AHI driver")
	(confirm)
	(source (tackon stuffdir "delfina.audio"))
	(dest "DEVS:ahi/")
)
(copyfiles 
	(help @copyfiles-help)
	(prompt "Installing devs:audiomodes/DELFINA, part of AHI driver")
	(source (tackon stuffdir "DELFINA"))
	(dest "DEVS:audiomodes/")
))

;**
;** Add lines to s:user-startup
;**
(startup "Delfina DSP"
	(prompt "A couple of lines are added to your s:user-startup")
	(help #nohelp)
	(command (cat "path " destdir " " (tackon destdir "bin") " add\nDelfMem >NIL:"))
)
(complete 60)

;**
;** copy includes
;**

(if devstuff 
(copyfiles
	(prompt "Copying include files")
	(help @copyfiles-help)
	(source (tackon destdir "include/"))
	(dest incdir)
	(all)
	(optional "force")
) (
(delete (tackon destdir "autodocs#?") (all))
(delete (tackon destdir "Examples#?") (all))
(delete (tackon destdir "Docs/A56.doc#?") (all))
(delete (tackon destdir "bin/a56") (all))
))


(complete 80)

;**
;** clean up stuff and include directories
;**

(delete stuffdir (all))
(delete (tackon destdir "include") (all))

(exit)


